﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class AgregarMateria : System.Web.UI.Page
    {
        private String _nombre;
        private int _teoria;
        private int _practica;
        private String _descripcion;
        private String _estatus;
        private List<Materia> _materias;
        private bool _seInserta;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " + esc.NombreEscuela; 

            MigaActual.Text = "Agregar una Materia";
            Label6.Text = "";
            Label6.Visible = false;
            Label10.Text = "";
            Label10.Visible = false;
            Label11.Text = "";
            Label11.Visible = false;
            Label12.Text = "";
            Label12.Visible = false;
            Label13.Text = "";
            Label13.Visible = false;
            SqlServerMateria lasMaterias = new SqlServerMateria();
            _materias = lasMaterias.ConsultarTodasLasMaterias();
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            //Se capturan todos los valores que introduce el usuario

            _seInserta = true;

            _nombre = TextNombre.Text;
            if (_nombre.Length == 0)
            {

                Label10.Text = "Datos incorrectos";
                Label10.Visible = true;
                _seInserta = false;

            }
            try
            {
                _teoria = Int32.Parse(TextTeo.Text);
            }
            catch (Exception ex)
            {
                Label11.Text = "Datos incorrectos";
                Label11.Visible = true;
                _seInserta = false;

            }
            try
            {
                _practica = Int32.Parse(TextPrac.Text);
            }
            catch (Exception ex)
            {

                Label12.Text = "Datos incorrectos";
                Label12.Visible = true;
                _seInserta = false;

            }

            _descripcion = TextBox1.Text;
            if (_descripcion.Length == 0)
            {
                Label13.Text = "Datos incorrectos";
                Label13.Visible = true;
                _seInserta = false;
            }
            _estatus = TextEstado.Text;

            foreach (Materia materia in _materias)
            {
                if (materia.Nombre.Contains(_nombre))
                {
                    _nombre = "existe";
                    _seInserta = false;
                }
            }


            //Se construye un objeto de materia basado en estos datos

            if (_seInserta == true)
            {
                Materia nueva = new Materia(0, _nombre, _teoria, _practica, _descripcion, _estatus);

                //Se inserta en la BD el registro creado

                SqlServerMateria insertaBD = new SqlServerMateria();
                bool seInserto = insertaBD.AgregarMateria(nueva);
                if (seInserto == true)
                {

                    //Se lleva a una pagina donde se muestra los datos de la materia insertada (Opcional)

                    Label6.Text = "La materia se agrego con exito";
                    Label6.CssClass = "transaccionExitosa";
                    Label6.ForeColor = System.Drawing.Color.Green;
                    Label6.Visible = true;
                }
                else
                {
                    Label6.Text = "Operacion Fallida";
                    Label6.CssClass = "transaccionFallida";
                    Label6.ForeColor = System.Drawing.Color.Red;
                    Label6.Visible = true;
                }

            }
            else
            {
                if (_nombre.Contains("existe"))
                {
                    Label6.Text = "Operacion Fallida: El nombre ya existe";
                    Label6.CssClass = "transaccionFallida";
                    Label6.ForeColor = System.Drawing.Color.Red;
                    Label10.Text = "Modifique el nombre";
                    Label10.Visible = true;
                    Label6.Visible = true;
                }
                else
                {
                    Label6.Text = "Operacion Fallida";
                    Label6.CssClass = "transaccionFallida";
                    Label6.ForeColor = System.Drawing.Color.Red;
                    Label6.Visible = true;
                }
            }
        }
    }
}